/**
 *
 */
package com.angel.io.processors.commands.imports;

import java.io.InputStream;
import java.util.List;

import com.angel.io.exceptions.InvalidFileDataException;
import com.angel.io.type.rows.ImportRowFile;

/**
 * @author William
 *
 */
public interface ImportFileProcessorCommand {

	/** Read file and create its rows to can be processed for a row processor.
	 *
	 * @param inputStream from file to read.
	 * @param numberPage to process.
	 * @return a row files' list which represents the file.
	 * @throws InvalidFileDataException when a processor could process file.
	 */
	public List<ImportRowFile> processFile(Integer numberPage) throws InvalidFileDataException;

	public void initialize(InputStream inputStream) throws InvalidFileDataException;

	public void finish();

	public String getFileExtension();

}
